/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.component.schedule.facade.command.result.info;

import cn.hutool.core.date.DateTime;
import info.peigen.hotpot.common.service.base.manage.ManageInfoBase;
import info.peigen.hotpot.component.schedule.facade.enums.ScheduleCommunicationMethod;
import info.peigen.hotpot.component.schedule.facade.enums.ScheduleExecuteResultCode;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;

/**
 * <b>(ScheduleJobManageInfo)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2023/1/6
 */
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
public class ScheduleJobManageInfo extends ManageInfoBase {
    String                      jobName;
    String                      cron;
    ScheduleCommunicationMethod communicationMethod;
    String                      url;
    String                      endPoint;
    DateTime                    preExecuteTime;
    ScheduleExecuteResultCode   preExecuteResultCode;
    DateTime                    nextExecuteTime;
    int                         executeTimeout;
    int                         executeFailRetryCount;
    String                      memo;
}